import paramiko
from infoUi import os
from infoUi import myInfoUi

class mySftp():#myInfoUi):

    def sftpLogin(self,host,port,user,pswd):
        try:
            self.client = paramiko.Transport((host,port))
            self.debugToUi(' sftp --> 开始尝试连接到 %s %d\r\n' % (host, port))
            self.client.connect( username=user,password=pswd)
            self.debugToUi('sftp --> 成功连接到  %s %d\r\n' % (host, port))

            self.debugToUi('sftp --> 开始尝试登录到  %s %d\r\n' % (host, port))
            self.__sftp = paramiko.SFTPClient.from_transport(self.client)
            self.debugToUi('sftp --> 成功登录到  %s %d\r\n' % (host, port))
        except Exception as e:
            self.debugToUi("sftp --> 登录失败: %s\r\n" %(e))

    def sftpUpLoad(self,lpath,rpath):
        try:
            self.__sftp.put(localpath=lpath,remotepath=rpath)
            self.debugToUi('sftp --> 上传: %s' %(rpath + "\r\n"))
        except Exception as e:
            self.debugToUi("sftp --> 上传文件出错，出现异常:%s\r\n" %(e))

    def sftpDownLoad(self,lpath,rpath):
        self.debugToUi(lpath+'\r\n')
        self.debugToUi(rpath+'\r\n')
        try:
            self.__sftp.get(remotepath=rpath,localpath=lpath)
            self.debugToUi('sftp --> 下载: %s' %(lpath + "成功!\r\n"))
        except Exception as e:
            self.debugToUi("sftp --> 下载文件出错，出现异常:%s\r\n" %(e))

    def sftpClose(self):
        self.__sftp.close()
        self.debugToUi('sftp --> close() 退出\r\n')
